import pandas as pd
import requests
from bs4 import BeautifulSoup
import re

# 读取Excel文件
file_path = 'C:\\Users\\govnet\\Desktop\\phones_details_with_params2.xlsx'  # 请替换为你的文件路径
df = pd.read_excel(file_path)

# 定义一个函数，用于请求页面并解析标题
def get_product_title(url):
    try:
        response = requests.get(url)
        response.raise_for_status()  # 如果请求失败，会抛出异常
        soup = BeautifulSoup(response.text, 'html.parser')

        # 提取标题，假设标题在网页的 <title> 标签内
        title_tag = soup.find('title')
        if title_tag:
            title = title_tag.text.strip()
            # 查找中括号的部分
            if "【" in title and "】" in title:
                # 获取中括号内的内容
                bracket_content = title.split("【")[1].split("】")[0]
                return bracket_content.strip()
            else:
                print(f"标题没有包含中括号: {title}")
        else:
            return None
    except Exception as e:
        print(f"请求错误: {e}")
        return None


# 遍历第二列，检查是否为空，如果为空则读取第一列的URL
for index, row in df.iterrows():
    if pd.isna(row['产品型号']):  # 如果产品型号为空
        device_url = row['设备参数详情页面地址']
        product_name = get_product_title(device_url)
        if product_name:
            df.at[index, '产品型号'] = product_name  # 将解析出的标题写入第二列

# 保存更新后的Excel文件
df.to_excel('phone-更新后的文件.xlsx', index=False)

print("处理完成！")
